/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ita.escolaita.view;

import br.ita.escolaita.ejb.SerieEjbLocal;
import br.ita.escolaita.model.entity.Serie;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.component.UIParameter;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpSession;

/**
 *
 * @author rafaelbrizola
 */
public class SerieBean {

    @EJB
    private SerieEjbLocal serieEjb;
    private Serie serie;
    private List<Serie> series;    

    // Construtor default
    public SerieBean() {
    }

    public String salvar() {
        serieEjb.salvar(serie);
        serie = new Serie();
        return "sucesso";
    }

    public String todasSeries() {
        try {
            series = serieEjb.listarTodos();
        } catch (Exception e) {
            e.printStackTrace();
            return "erro";
        }
        return "sucesso";
    }

    public void selecionarListener(ActionEvent event) {
        UIParameter component = (UIParameter) event.getComponent().findComponent("serieDesativar");
        if (component == null) {
            component = (UIParameter) event.getComponent().findComponent("serieAtivar");
        }
        if (component == null) {
            component = (UIParameter) event.getComponent().findComponent("serieAlterar");
        }
        if (component != null) {
            serie = (Serie) component.getValue();
        }
    }

    public String alterar() {
        return "alterar";
    }

    public String salvarAlteracao() {
        String retorno = null;
        try {
            serieEjb.alterar(serie);
            retorno = "sucesso";
            serie = new Serie();
        } catch (Exception e) {
            e.printStackTrace();
            retorno = "erro";
        }
        return retorno;
    }

    public String pesquisar() {
        String retorno = null;
        try {
            setSeries(serieEjb.listar(serie));
            retorno = "sucesso";
        } catch (Exception e) {
            e.printStackTrace();
            retorno = "erro";
        }

        return retorno;
    }

    public String voltar() {
        HttpSession ses = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        ses.removeAttribute("serie");
        ses.removeAttribute("serieBean");
        ses.removeAttribute("series");
        return "voltar";
    }

    public void desativar() {
        serie.setStatus('I');
        serieEjb.alterar(serie);
        serie = new Serie();
    }

    public void ativar() {
        serie.setStatus('A');
        serieEjb.alterar(serie);
        serie = new Serie();
    }

    public List<SelectItem> getListaSeries() {
        todasSeries();
        List<SelectItem> itens = new ArrayList<SelectItem>();
        for (Serie s : series) {
            SelectItem item = new SelectItem(s, s.getNome());
            itens.add(item);
        }
        return itens;
    }
    // Getters and Setters

    public Serie getSerie() {
        return serie;
    }

    public void setSerie(Serie serie) {
        this.serie = serie;
    }

    public List<Serie> getSeries() {
        return series;
    }

    public void setSeries(List<Serie> series) {
        this.series = series;
    }
}
